package com.zret.facetools;

import java.util.HashMap;

import org.json.JSONObject;

import com.baidu.aip.face.AipFace;

public class FaceBDTools {
	
	//用单例获取百度AipFace对象,做为成员属性
	private static AipFace client=ClientSingle.getClient();
	
	/**
	 * 人脸注册
	 * @param imgbase64 图片类型
	 * @param userId  用户id
	 * @return json对象
	 */
	public static JSONObject faceRegister(String imgbase64,String userId) {
		//1/参数设置
		HashMap<String, String> options=new HashMap<String, String>();
		//图片质量设置
		options.put("quality_control", "NORMAL");
		//活体检测
		options.put("liveness_control", "LOW");
		//2进行人脸注册
		JSONObject addUserFace = client.addUser(imgbase64, "BASE64", "zretcFace", userId, options);
		return addUserFace;
		
	}
	
	/**
	 * 人脸检测，主要是检测该图形是否是人脸
	 * @param imgbase64
	 * @return json对象
	 */
	
	public static JSONObject faceChecking(String imgbase64) {
		//1/参数设置
		HashMap<String, String> options=new HashMap<String, String>();
		//图片质量设置
		options.put("quality_control", "NORMAL");
		//活体检测
		options.put("liveness_control", "LOW");
		//最大人脸检测数
		options.put("max_face_num", "1");
		//检测人脸的数据，比如年龄
		options.put("face_field", "age,beauty");
		
		JSONObject facecheck = client.detect(imgbase64, "BASE64", options);
		
		return facecheck;
		
	}
	
	
	
	/**
	 * 人脸搜索，即人脸在人脸库里面进行比对，获取相似度最高的一个
	 * @param imgbase64
	 * @return
	 */
	public static JSONObject faceSelect(String imgbase64) {
		//1/参数设置
		HashMap<String, String> options=new HashMap<String, String>();
		//图片质量设置
		options.put("quality_control", "NORMAL");
		//活体检测
		options.put("liveness_control", "LOW");
		JSONObject facesearch = client.search(imgbase64, "BASE64", "zretcFace", options);
		return facesearch;
		
	}
	
	/**
	 * 人脸更新
	 * @param imgbase64
	 * @param userId
	 * @return
	 */
	public static JSONObject faceUpdate(String imgbase64,String userId) {
		//1/参数设置
		HashMap<String, String> options=new HashMap<String, String>();
		//图片质量设置
		options.put("quality_control", "NORMAL");
		//活体检测
		options.put("liveness_control", "LOW");
		JSONObject updateUserFace = client.updateUser(imgbase64, "BASE64", "zretcFace", userId, options);
		return updateUserFace;
	}
	
	
	

	
	
	

}
